package Logica.ShortRound;

import Logica.Grilla.Grilla;
import Logica.Objeto.Objeto;
import Logica.Pistola.Pistola;
import Logica.TanqueCombustible.TanqueCombustible;

public class Militar extends ShortRound {
	protected Pistola pistola;

	/**
	 * Crea una nueva instancia de militar.
	 *
	 * @param grilla
	 */
	public Militar( Grilla grilla ) {
		super( grilla );
		tanqueCombustible = new TanqueCombustible( super.grilla );
		pistola = new Pistola();
	}

	/**
	 * Disparar.
	 *
	 * @return boolean verdadero si hay un objeto en la celda delantera y con este disparo se rompe, falso en caso contrario
	 */
	public boolean disparar() {
		boolean tor=false;
		if(pistola.obtenerCantidadBalas()>0){
			if(grilla.obtenerCeldaDelantera().obtenerPiso().hayObjeto()){
				grilla.obtenerCeldaDelantera().obtenerPiso().obtenerObjeto().disminuirIndiceDestruccion();
				Objeto objeto = grilla.obtenerCeldaDelantera().obtenerPiso().obtenerObjeto();
				if( objeto.obtenerIndiceDestruccion() == 0 ){
					tor = true;
					if( objeto.hayPremio() ){
						grilla.obtenerCeldaDelantera().obtenerPiso().establecerPremio(objeto.obtenerPremio());
					}	
					grilla.obtenerCeldaDelantera().obtenerPiso().removerObjeto();
				}
			}
			pistola.efectuarDisparo();
		}
		return tor;
	}

	/**
	 * Obtener pistola.
	 *
	 * @return pistola
	 */
	public Pistola obtenerPistola() {
		return ( pistola );
	}

	/**
	 * Obtener cantidad balas.
	 *
	 * @return int
	 */
	public int obtenerCantidadBalas() {
		return ( pistola.obtenerCantidadBalas() );
	}
}
